import java.io.IOException;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.HashMap;

/*
 * 
 * Thread qui recoit les information  des
 * lignes de bus a intervalle de temps regulier
 * 
 */

public class ConnexionBus extends Thread {
	UDP c;
	HashMap<Integer, HashMap<Integer,Bus>> informationsLignes;
	HashMap<Integer, Bus> liste;
	
	public ConnexionBus(HashMap<Integer, HashMap<Integer,Bus>> iLignes) throws SocketException {
		c = new UDP(4000, 1024);
		informationsLignes=iLignes;
		liste = new HashMap<Integer, Bus>();
	}
	
	public void run(){	
			String destination,position,etat;
			int num,vitesse,numL;
			
			String s;
			try {
				//On recoit le numero de la ligne
				s = c.recevoir();
				numL = Integer.parseInt(s.trim());
				System.out.println("reception d'informations de la ligne n '"+numL+"'\n");
				//On recoit les bus de la ligne i
				while(true){
					s = c.recevoir();
					System.out.println(s+"\n");
					num = Integer.parseInt(s.split("\n")[0].split(":")[1]);
					vitesse =Integer.parseInt(s.split("\n")[1].split(":")[1]);
					destination = s.split("\n")[2].split(":")[1];
					position = s.split("\n")[3].split(":")[1];
					etat = s.split("\n")[4].split(":")[1];
					Bus b= new Bus(num,position,destination,vitesse,etat);
					liste.put(num,b);
					informationsLignes.put(numL,liste);
				}	
			} catch (IOException e) {
				e.printStackTrace();
			}
			
	}
}
